]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
5 years agooverviewControls: Incorporate ActivitiesContainer
Georges Basile Stavracas Neto [Thu, 14 Jan 2021 23:23:15 +0000 (20:23 -0300)]
overviewControls: Incorporate ActivitiesContainer

Move AppDisplay, WorkspacesDisplay, and ThumbnailsBox from ViewSelector to
ControlsManager. This allows to always allocate the correct size for AppDisplay,
and will enable for a plethora of further improvements. The end goal is to
completely remove ViewSelector, and let ControlsManager handle the layout of
everything that's visible in the overview.

For now, replace the apps page with a dummy actor in ViewSelector.

Adjust various callers around the codebase to not access the ViewSelector
directly from the overview anymore.

Bind the opacity of the primary workspace to WorkspaceDisplay's opacity. This
allows removing the parent opacity hack in place, which will be done by the
next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Use specialized class for Overview adjustment
Georges Basile Stavracas Neto [Fri, 15 Jan 2021 18:28:23 +0000 (15:28 -0300)]
overviewControls: Use specialized class for Overview adjustment

It'll be useful for the next commits to have a handy 'getState' method
that calculates the progress of any particular transition.

Move the St.Adjustment to a specialized subclass.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Remove pinch gestures
Georges Basile Stavracas Neto [Tue, 5 Jan 2021 13:38:33 +0000 (10:38 -0300)]
viewSelector: Remove pinch gestures

It'll be replaced by a 3 finger gesture that sticks to fingers
and progressively transitions between states.

Remove both pinch and touchpad pinch gestures from ViewSelector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Drop edge drag gesture
Georges Basile Stavracas Neto [Tue, 5 Jan 2021 13:33:59 +0000 (10:33 -0300)]
viewSelector: Drop edge drag gesture

It doesn't use any ViewSelector's API anymore, and its functionality will be taken
over by the 3 finger gesture.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Move 'toggle-applications-view' to ControlsManager
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:41:54 +0000 (17:41 -0300)]
viewSelector: Move 'toggle-applications-view' to ControlsManager

Move the shortcut handling into ControlsManager, and reimplement
the callback in such a way that it behaves correctly with the
current overview machinery.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Remove showApps()
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:28:44 +0000 (17:28 -0300)]
viewSelector: Remove showApps()

Now that Overview is able to ease into any state, be it window
picker or app grid, we can move this ViewSelector method to
Overview itself, which is its rightful place to live.

Remove ViewSelector.showApps(), and make all callers call
Main.overview.show(ControlsState.APP_GRID). Also make sure the
show apps button is correctly toggled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverivew: Propagate target state when animating to overview
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:19:37 +0000 (17:19 -0300)]
overivew: Propagate target state when animating to overview

Next commits will requires ControlsManager to animate to different
states, depending on how Overview is called. Add a new 'state'
parameter to ControlsManager's, and OverviewActor's animateToOverview,
and Overview.show().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Move 'toggle-overview' shortcut to overview
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 20:10:36 +0000 (17:10 -0300)]
viewSelector: Move 'toggle-overview' shortcut to overview

It is handled there already, there's no reason for it to continue
to be in ViewSelector.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspace, workspacesView: Cleanup animation methods
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 19:17:17 +0000 (16:17 -0300)]
workspace, workspacesView: Cleanup animation methods

Remove Workspace.zoomTo/FromOverview(), they're unused now. Rename
everything up to ControlsManager to prepareToEnter/LeaveOverview(),
since these classes don't run the animation anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView: Derive workspace mode from overview state
Georges Basile Stavracas Neto [Sat, 2 Jan 2021 19:06:34 +0000 (16:06 -0300)]
workspacesView: Derive workspace mode from overview state

WorkspacesView uses the floating layout when the overview is in window
picker mode, and the session layout when the overview is in app grid
mode. Up until now, the fit mode adjustment was used to derive the
workspace mode, but it is incomplete as it doesn't have the full range
of workspace states.

Make ViewSelector cascade the overview adjustment to WorkspacesDisplay,
and use the overview adjustment itself to derive the workspace mode.

Extra workspaces don't have to account for the fit mode, and thus are
basically a clamp(state, 0, 1) of the overview state. However, don't
call animateTo/FromOverview() anymore, since they ease the workspace
mode adjustment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoworkspacesView: Add primary view to workspaces display
Florian Müllner [Fri, 26 Jun 2020 16:38:28 +0000 (18:38 +0200)]
workspacesView: Add primary view to workspaces display

Boy, does this commit feel good.

While the workspaces view on the primary monitor *appears* as part of
the overall overview hierarchy, this hasn't actually been the case
until now. We synchronized its size and (stage) position to match
the workspaces display, but actually kept in a separate layer for
the transitions to and from the overview.

But now that the new layout manager slides out completely during the
overview transitions, the workspaces display starts out covering the
entire work area, which is exactly what we need for the transition.

So finally stop faking it, and actually make the primary workspaces
view a child of the workspaces display.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Don't fade OverviewActor
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 17:18:18 +0000 (14:18 -0300)]
overview: Don't fade OverviewActor

Now that the workspace display is properly allocated for each frame,
we don't want to fade the entire overview anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Ease main adjustment when animating to/from overview
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 17:00:30 +0000 (14:00 -0300)]
overviewControls: Ease main adjustment when animating to/from overview

Instead of delegating it to ViewSelector, make the transition to and from
overview ease the main state adjustment.

This commit temporarily breaks these animations, but on the other hand
introduces an important feature: ViewSelector is always allocated to the
actual size. This will finally allow for adding WorkspacesView as a child
of WorkspacesDisplay, and finally remove the actual geometry hack, which
is what next commit is about.

This commit also effectively reverts b64103efc.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Reorganize animateTo/FromOverview()
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 16:39:07 +0000 (13:39 -0300)]
overview: Reorganize animateTo/FromOverview()

Instead of directly accessing ViewSelector and calling these methods
there, cascade the calls to OverviewActor, ControlsManager, and finally
ViewSelector. Also move the opacity transition to OverviewActor.

This commit has no functional change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoviewSelector: Use state adjustment for apps page
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:45:09 +0000 (17:45 -0300)]
viewSelector: Use state adjustment for apps page

Currently, ActivitiesContainer reacts to showAppsButton and
transitions between app grid and window picking states on
its own. In the future, we want full control over this.

ControlsManager already has a state adjustment that represents
all possible overview states. Propagate this adjustment up to
ActivitiesContainer, and use it to drive the transition.

This requires moving the callback to the showAppsButton to
ControlsManager, since now it control the state adjustment
itself, not ActivitiesContainer's adjustment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls: Use adjustment to control layout
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:32:03 +0000 (17:32 -0300)]
overviewControls: Use adjustment to control layout

Right now, the adjustment is fixed at ControlsState.WINDOW_PICKER,
but soon it will be propagated to ViewSelector to control the
transitions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverviewControls/controlsManager: Use a custom layout manager
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:16:18 +0000 (17:16 -0300)]
overviewControls/controlsManager: Use a custom layout manager

In the future, we want to tightly control the state of the
layout throught gestures, which requires hooking everything
together with adjustments. This is the first step in this
direction.

Add a new custom layout manager for ControlsManager that
allocates the search entry, the view selector, and the Dash,
vertically.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agooverview: Move search entry to ControlsManager
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 20:02:14 +0000 (17:02 -0300)]
overview: Move search entry to ControlsManager

Next commit will tie all these widgets up with a single
layout manager, and we need to control the search entry
position.

Move it to OverviewControls.ControlsManager.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>

5 years agoui/windowManager: Fix horizontal scrolling when smooth events are used
Pascal Nowack [Thu, 11 Feb 2021 14:17:22 +0000 (15:17 +0100)]
ui/windowManager: Fix horizontal scrolling when smooth events are used

Currently, gnome-shell uses the wrong scrolling direction for
horizontal scrolling events.
When dx < 0 for a smooth scroll event, then the scrolling direction is
supposed to be Clutter.ScrollDirection.LEFT, instead of
Clutter.ScrollDirection.RIGHT, as dx is smaller than 0.

Fix this issue by swapping the values LEFT and RIGHT.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1665>

5 years agopolkitAgent: Ensure cleanup if dialog wasn't shown
Florian Müllner [Tue, 9 Feb 2021 23:10:03 +0000 (00:10 +0100)]
polkitAgent: Ensure cleanup if dialog wasn't shown

It is possible for an initiated session to complete without
a request if polkit can authenticate the action without user
input. We fail to clean up after ourselves in that case, as
the cleanup is done after the dialog is closed.

The dialog can still be shown when the code that hides existing
dialogs while the screen is locked shows it on unlock. But as
the session was closed, the dialog is now defunct and cannot
be dismissed by the user.

Fix this by running the cleanup on close() when the dialog
wasn't shown.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3701

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1662>

5 years agoextensions-app: Add description tooltip to rows
Leleat [Wed, 10 Feb 2021 01:18:19 +0000 (02:18 +0100)]
extensions-app: Add description tooltip to rows

... to allow showing the full description in case the label is ellipsized.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1663>

5 years agoUpdate Portuguese translation
Hugo Carvalho [Wed, 10 Feb 2021 19:04:34 +0000 (19:04 +0000)]
Update Portuguese translation

5 years agodash: Re-fittsify
Florian Müllner [Tue, 9 Feb 2021 18:57:55 +0000 (19:57 +0100)]
dash: Re-fittsify

Now that the dash is no longer attached to a screen edge, it lost
its "infinite width" (Fitts' law). Restore it by moving the visible
bar into a separate layer underneath the actual icons, extend the
icons to the bottom edge, and replace the margin around the dash
with padding inside the icons.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agodash: Reindent some more code
Florian Müllner [Tue, 9 Feb 2021 21:01:45 +0000 (22:01 +0100)]
dash: Reindent some more code

Again we're about to touch it.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agooverviewControls: Remove DashFader
Florian Müllner [Tue, 9 Feb 2021 16:50:29 +0000 (17:50 +0100)]
overviewControls: Remove DashFader

By now there is so little left of the old sliding controls that the
split from the actual dash makes little sense.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/89

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1660>

5 years agostylesheet: Increase app dropshadows
Jakub Steiner [Thu, 4 Feb 2021 13:16:00 +0000 (14:16 +0100)]
stylesheet: Increase app dropshadows

Increase the app icon dropshadow to separate the icon from the window thumbnail.
The shadow change is global, but due to perfomance implications, the icon-dropshadow
class is only used on the thumbnail view.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3670

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1656>

5 years agodash: Consider additions for separator visibility
Florian Müllner [Tue, 9 Feb 2021 20:48:39 +0000 (21:48 +0100)]
dash: Consider additions for separator visibility

The children variable holds the icons that were originally in
the dash. For the separator visibility, we should consider the
icons that are in the dash after the update, so we must consider
additions as well as removals.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1659>

5 years agoUpdate Slovenian translation
Matej Urbančič [Tue, 9 Feb 2021 20:44:37 +0000 (20:44 +0000)]
Update Slovenian translation

5 years agoUpdate Catalan translation
Jordi Mas [Tue, 9 Feb 2021 19:28:34 +0000 (20:28 +0100)]
Update Catalan translation

5 years agoUpdated Spanish translation
Daniel Mustieles [Tue, 9 Feb 2021 15:13:59 +0000 (16:13 +0100)]
Updated Spanish translation

5 years agoworkspacesView: Fix off-by-one error
Abderrahim Kitouni [Tue, 9 Feb 2021 09:17:29 +0000 (10:17 +0100)]
workspacesView: Fix off-by-one error

This is basically 9f0e7632a6 ported over ed1170906b which was dropped this
fix when copying things around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1655>

5 years agoUpdate Romanian translation
Florentina Mușat [Tue, 9 Feb 2021 09:31:30 +0000 (09:31 +0000)]
Update Romanian translation

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Tue, 9 Feb 2021 06:47:34 +0000 (06:47 +0000)]
Update Ukrainian translation

5 years agologinDialog: Fill UserListItem layout to show the timed login indicator
Marco Trevisan (Treviño) [Fri, 5 Feb 2021 15:58:49 +0000 (16:58 +0100)]
loginDialog: Fill UserListItem layout to show the timed login indicator

When the timed indicator is shown the UserListItem layout should fill
so that the timed indicator can expand to use the whole item space.

So, always use the default value for x-align that will make it to fill
the available space without causing any regression when the timed
indicator is hidden.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3675
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1644>

5 years agoUpdate Galician translation
Fran Dieguez [Mon, 8 Feb 2021 22:45:32 +0000 (22:45 +0000)]
Update Galician translation

5 years agoworkspacesView: Enable long swipes
Alexander Mikhaylenko [Sun, 7 Feb 2021 20:06:02 +0000 (01:06 +0500)]
workspacesView: Enable long swipes

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Add allowLongSwipes property
Alexander Mikhaylenko [Sun, 7 Feb 2021 20:02:58 +0000 (01:02 +0500)]
swipeTracker: Add allowLongSwipes property

Since we now have the ability to support swiping through multiple pages,
expose it as a property.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Rework end point calculation
Alexander Mikhaylenko [Sun, 7 Feb 2021 18:39:54 +0000 (23:39 +0500)]
swipeTracker: Rework end point calculation

Previously we used a bunch of heuristics for this. We checked if velocity
was directed towards the nearest snap point and its value was larger than
a threshold. If it is, we completed the swipe, otherwise we cancelled it.

This was good enough at the time, because this code was originally written
for back/forward swipe. Since then, the swipe tracker was extended to
handle arbitrary snap points and not just 0 and 1, or -1 and 0, depending
on text direction. After that it was iterated on, but never significantly
redone.

This worked well enough, but had two problems:

1. In some cases, notably overview, it may be wanted to be able to swipe
   through multiple pages at once. This wasn't really possible because we
   always picked the adjacent snap point.

2. Since we can't do that well, we want to restrict swipes to one page at a
   time. It was done in a rather hacky way by clamping the position into
   [-1, 1] range from the place where we started the swipe. This works
   if we start the swipe from idle position, but if an animation was
   already going, the range would be clamped to arbitrary values, and very
   likely containing only one snap point, which we already swiped past at
   this point. In this case, finishing the swipe would cancel it regardless
   of velocity. This means that if one tries to quickly move through
   carousel pages via swiping, half of the swipes will be inexplicably
   cancelled.

We'll use the deceleration formula from
https://medium.com/@esskeetit/how-uiscrollview-works-e418adc47060#10ce
to calculate then projection point, then pick the nearest snap point and
calculate the duration as we did before. It works well enough for short
distances, but has two problems:

1. It caps the maximum distance at a pretty low value - about 5 pages in my
testing.

2. With how we pick the nearest snap point, it's too easy to accidentally
cancel the swipe,

To combat the first problem, we can modify the curve: only use linear
function at small distances, and smoothly transition it to a parabola
further.

For the second problem we can add two special cases: first, if the swipe
ended up between the initial snap point and the next one, we always prefer
the latter. Second, a good old velocity threshold for cancelling.

We'll also use a slightly smaller deceleration value for touchpad: 0.997
instead of 0.998.

Now that we can pick any snap point, the [-1, 1] clamping doesn't make
sense anymore, so instead let's replace it with a more flexible
mechanism: if we're near a snap point, pick its adjacent snap points.
Otherwise, take the two nearest snap points, and take their adjacent
snap points. This way we have 3 snap points to choose from when
starting a swipe from an idle position, and 4 if we start during an
ongoing transition.

This way, if we've just swiped from snap point n to n+1, the transition
will pick snap points n-1, n, n+1, n+2 and if we swipe again, we will
likely land on n+2. During that transition, if we swipe again, it will
likely have already passed the snap point n+1, so this time the available
snap points will be n, n+1, n+2, n+3, so we can swipe again and it will
still complete, and so on.

This will make it easy to allow multi-page swipes as well, by just
removing the clamping.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoswipeTracker: Calculate velocity using scroll history
Alexander Mikhaylenko [Sun, 7 Feb 2021 17:46:49 +0000 (22:46 +0500)]
swipeTracker: Calculate velocity using scroll history

In some cases we may get anevent with very low delta at the end of the
swipe. While we can't completely ignore them, we can smooth them using a
scroll history, similarly to what GTK kinetic scrolling does: keep track
of the last 150ms of events, and sum their deltas when calculating the
velocity.

The logic is based on what GTK does in GtkGestureSwipe and
GtkEventControllerScroll.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1647>

5 years agoUpdate Swedish translation
Anders Jonsson [Mon, 8 Feb 2021 21:50:37 +0000 (21:50 +0000)]
Update Swedish translation

5 years agofingerprint: Show different strings depending on type
Razze [Sat, 30 Jan 2021 19:14:04 +0000 (20:14 +0100)]
fingerprint: Show different strings depending on type

Fprintd knows if the fingerprint reader is of the swipe or press type. We now show different labels depending on that.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2011

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1572>

5 years agofingerprint: Use makeProxyWrapper for fprintManager
Razze [Sat, 30 Jan 2021 19:10:03 +0000 (20:10 +0100)]
fingerprint: Use makeProxyWrapper for fprintManager

The reason this wasn't using the Gio.DBus.makeProxyWrapper() convenience API is that it passes custom flags to the proxy, and that wasn't supported by the wrapper at the time.

As this is now possible, this commit migrates us to the new API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1572>

5 years agost: Test for :insensitive styling
Florian Müllner [Sun, 7 Feb 2021 22:21:55 +0000 (23:21 +0100)]
st: Test for :insensitive styling

Commit 473e77e2c5a fixed applying the :insensitive pseudo class to
initially unreactive widgets, and adjusted the style test to work
with that.

In hindsight, we can do better than just making the test work, and
include a test case for the :insensitive styling as well (namely
the issue the previous commit was fixing).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1649>

5 years agoci: Bump mutter image
Florian Müllner [Mon, 8 Feb 2021 14:20:26 +0000 (15:20 +0100)]
ci: Bump mutter image

Needed for mutter's bumped pipewire dependency.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1650>

5 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 8 Feb 2021 11:33:54 +0000 (11:33 +0000)]
Update Brazilian Portuguese translation

5 years agorunDialog: Trim input before processing
Lucas Werkmeister [Sun, 7 Feb 2021 18:41:36 +0000 (19:41 +0100)]
runDialog: Trim input before processing

This way, whitespace-only (nonempty) input gets the same treatment of
not being added to the history (see previous commit), which seems nice.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agorunDialog: Don’t add empty input to history
Lucas Werkmeister [Sun, 7 Feb 2021 18:38:40 +0000 (19:38 +0100)]
runDialog: Don’t add empty input to history

If the input is empty, there’s no point in adding it to the history –
it’ll just be mildly annoying when the user has to skip past it next
time they consult the history.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agorunDialog: Don’t treat empty input specially
Lucas Werkmeister [Sun, 7 Feb 2021 18:12:57 +0000 (19:12 +0100)]
runDialog: Don’t treat empty input specially

Let empty input result in an error, just like other invalid commands
(bad syntax, nonempty whitespace, etc.). GLib already has an error
message “Text was empty (or contained only whitespace)” which it shows
for whitespace-only input, so letting that message apply also to empty
input makes sense.

This requires some tweaks further down the file to avoid interpreting
empty input as an empty path (relative to the home directory) and then
opening the home directory.

Part of https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3183.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442>

5 years agost/widget: Fix applying :insensitive to initially unreactive widgets
Florian Müllner [Sun, 7 Feb 2021 22:21:55 +0000 (23:21 +0100)]
st/widget: Fix applying :insensitive to initially unreactive widgets

We are applying the :insensitive pseudo class to unreactive widgets,
or at least we are supposed to. As we currently only update the style
on notify, we don't apply it to initially unreactive widgets.

This was covered up partially until recently when Clutter started to
use G_PARAM_EXPLICIT_NOTIFY. Before that, the notify handler would run
when explicitly setting :reactive to FALSE at construction time.

Make sure we always apply the pseudo class correctly by updating it
after construct properties have been set.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3685

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1648>

5 years agoshell-util: Use early-return in shell_util_get_week_start()
TerraAr [Fri, 18 Dec 2020 17:54:04 +0000 (17:54 +0000)]
shell-util: Use early-return in shell_util_get_week_start()

Cleanup shell_util_get_week_start() a little bit and use an early-return
instead of setting the week_start variable to 0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1546>

5 years agoUpdate Romanian translation
Daniel Șerbănescu [Sun, 7 Feb 2021 14:08:24 +0000 (14:08 +0000)]
Update Romanian translation

5 years agost/theme-node-drawing: Fix inner shadow fast path condition
Sebastian Keller [Sat, 6 Feb 2021 23:23:04 +0000 (00:23 +0100)]
st/theme-node-drawing: Fix inner shadow fast path condition

We want to use the fast path of filling the entire area if either the
left and right shadows would overlap or the top and bottom shadows. The
latter check was wrong due to a typo resulting in the regular path
being used in some cases it couldn't (and shouldn't) handle.

This was causing the inset shadow used to highlight panel buttons to
not appear for buttons above a certain width.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1646>

5 years agoUpdate Galician translation
Fran Dieguez [Sun, 7 Feb 2021 00:07:52 +0000 (00:07 +0000)]
Update Galician translation

5 years agoUpdate Portuguese translation
Hugo Carvalho [Sat, 6 Feb 2021 21:47:55 +0000 (21:47 +0000)]
Update Portuguese translation

5 years agoUpdated Czech translation
Marek Černocký [Sat, 6 Feb 2021 08:37:37 +0000 (09:37 +0100)]
Updated Czech translation

5 years agoUpdated Czech translation
Marek Černocký [Sat, 6 Feb 2021 07:28:11 +0000 (08:28 +0100)]
Updated Czech translation

5 years agoUpdate Ukrainian translation
Yuri Chornoivan [Fri, 5 Feb 2021 20:23:04 +0000 (20:23 +0000)]
Update Ukrainian translation

5 years agoUpdate Swedish translation
Anders Jonsson [Fri, 5 Feb 2021 18:42:39 +0000 (18:42 +0000)]
Update Swedish translation

5 years agodata: Fix grammar and wording in new GSettings key
Bastien Nocera [Fri, 5 Feb 2021 14:33:00 +0000 (15:33 +0100)]
data: Fix grammar and wording in new GSettings key

The description for the 'welcome-dialog-last-shown-version' key
must have been written quite late in the day, as it's full of grammar
mistakes, typos and British English.
*sips coffee*
I can say that, because I wrote it.
*sips coffee*
Anyway, that might be a bit better.

*sips coffee* and Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1641

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1641>

5 years agomain: Show welcome dialogue on first start
Bastien Nocera [Mon, 1 Feb 2021 12:31:41 +0000 (13:31 +0100)]
main: Show welcome dialogue on first start

This hooks the recently added welcome dialogue to be shown the first
time a new session is started, and disabled after that.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agoutil: Add a GNOME version comparison function
Bastien Nocera [Thu, 4 Feb 2021 11:26:15 +0000 (12:26 +0100)]
util: Add a GNOME version comparison function

Add a function that can compare GNOME versions, including the new naming
scheme for GNOME 40 and later.

Used in https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agowelcomeDialog: Add “welcome” dialog
Bastien Nocera [Mon, 1 Feb 2021 09:20:48 +0000 (10:20 +0100)]
welcomeDialog: Add “welcome” dialog

As designed at:
https://gitlab.gnome.org/Teams/Design/os-mockups/-/blob/master/greeter/welcome-dialog.png

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3632
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1619>

5 years agotheme: Space dash items
Jakub Steiner [Thu, 4 Feb 2021 17:27:30 +0000 (18:27 +0100)]
theme: Space dash items

- don't nuke separator
- space appropriately

Fixes a fix for https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3640

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1636>

5 years agotheme: Legible thumbnail close button
Jakub Steiner [Thu, 4 Feb 2021 17:04:09 +0000 (18:04 +0100)]
theme: Legible thumbnail close button

- prominent close button
- legible yet stylish thumbnail labels

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3669

5 years agodata: Update custom close icon
Florian Müllner [Thu, 4 Feb 2021 23:50:34 +0000 (00:50 +0100)]
data: Update custom close icon

The existing asset has a nice black rectangle on top of the
intended shape.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>

5 years agodata: Rename custom close icon
Florian Müllner [Thu, 4 Feb 2021 23:47:06 +0000 (00:47 +0100)]
data: Rename custom close icon

Resource icons are added to the fallback icon theme, so they won't
get used if a matching icon is found in the configured theme.

That includes fallback names, so Adwaita's "window-close-symbolic"
takes precedence over "window-close-24-symbolic" in hicolor.

Fix this by using a custom name for a custom icon.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>

5 years agodata: Move custom close icon into actions/
Florian Müllner [Thu, 4 Feb 2021 23:17:12 +0000 (00:17 +0100)]
data: Move custom close icon into actions/

Adwaita uses ui/ for the corresponding icon, but GTK treats icons
from a resource path as part of the hicolor theme that doesn't
have such a subdir. And as GTK determines subdirs by enumerating
the theme directory, any subdirs that only exist in the resource
are ignored, whoops.

Make sure the icon can be found by moving it to a standard subdir.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1640>

5 years agotheme: Scale media player button padding with font size
Sebastian Keller [Thu, 4 Feb 2021 01:22:22 +0000 (02:22 +0100)]
theme: Scale media player button padding with font size

The total width of the MediaMessage scales with the font size, but the
padding of the media player buttons do not, which can become an issue
with text-scaling-factor < 1.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3664

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1632>

5 years agompris: Hide unused elements to leave more space for the title
Sebastian Keller [Thu, 4 Feb 2021 01:17:08 +0000 (02:17 +0100)]
mpris: Hide unused elements to leave more space for the title

The Message class this is derived from unconditionally adds a close
button with 0 opacity that only gets shown on hover for messages that
can actually be closed. The MPRIS MediaMessage however can never be
closed and having a close button can cause the title to be cut short
unexpectedly.

Similarly the secondary text which other notifications use to display
the notification time is always left empty here as well.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3664

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1632>

5 years agoappDisplay: Do not bind popdown call to grabHelper onUngrab
Marco Trevisan (Treviño) [Thu, 4 Feb 2021 16:37:02 +0000 (17:37 +0100)]
appDisplay: Do not bind popdown call to grabHelper onUngrab

grabHelper is passing a boolean argument to onUngrab() callback function
and since commit 1acbdcc9b3b0 we'd end up adding it to to the callback list or
we'd try to invoke it:

 (gnome-shell:3490851): Gjs-CRITICAL **: 17:19:20.460: JS ERROR:
  TypeError: func is not a function
  onComplete/<@/media/M2/GNOME/gnome-shell/js/ui/appDisplay.js:2407:56
  onComplete@/media/M2/GNOME/gnome-shell/js/ui/appDisplay.js:2407:40
  _makeEaseCallback/<@/media/M2/GNOME/gnome-shell/js/ui/environment.js:85:13
  _easeActor/<@/media/M2/GNOME/gnome-shell/js/ui/environment.js:170:64

Use an arrow function so that we can control the parameters we pass
to popdown.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1635>

5 years agopanel: Align left and right margin for status panel item
Razze [Tue, 2 Feb 2021 00:54:48 +0000 (01:54 +0100)]
panel: Align left and right margin for status panel item

We now set a padding for the left and right
side of the pill. We also got rid of the padding on the icon.

Probably broken due to the removal of the dropdown arrow
which likly handled the padding the right side of this item before.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1615>

5 years agoaccessibility/keyboard: Align the panelMenu button style
Razze [Tue, 2 Feb 2021 00:51:15 +0000 (01:51 +0100)]
accessibility/keyboard: Align the panelMenu button style

This get's rid of the single-indicator introduced in one of the latest
commits. This was causing the accessibility pill in the top panel
 to have different padding from the keyboard layout pill.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1615>

5 years agowindowManager: Allow switching workspaces with super-scroll
Florian Müllner [Fri, 29 Jan 2021 19:33:23 +0000 (20:33 +0100)]
windowManager: Allow switching workspaces with super-scroll

So far, we couldn't allow workspace scrolling outside the overview
because scroll events were always sent to clients. However mutter
was changed recently to pass on scroll events when the mouse button
modifier (usually super) is pressed, which allows us to enable the
same workspace scrolling as in the overview now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1612>

5 years agoswipeTracker: Optionally require modifiers for scrolling
Florian Müllner [Fri, 29 Jan 2021 20:28:52 +0000 (21:28 +0100)]
swipeTracker: Optionally require modifiers for scrolling

The design now calls for super-scroll for workspace switching
in the session, however it is currently only possible for
SwipeTracker to either handle scroll events or not.

In order to support the new use case, add a new :scroll-modifiers
property that allows specifying modifiers for which scroll events
are handled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1612>

5 years agoworkspacesView: Move workspace scroll code to windowManager
Florian Müllner [Fri, 29 Jan 2021 19:22:52 +0000 (20:22 +0100)]
workspacesView: Move workspace scroll code to windowManager

This will allow sharing the code for the new super-scroll functionality.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1612>

5 years agoChange all g_memdup() to g_memdup2()
Jonas Ådahl [Thu, 4 Feb 2021 17:56:02 +0000 (18:56 +0100)]
Change all g_memdup() to g_memdup2()

Using g_memdup() is dangerous due to the type of the size argument. See
https://gitlab.gnome.org/GNOME/glib/-/issues/2319 and
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1926 for details.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1637>

5 years agodnd: Update actor position after scaling even when animations are off
Sebastian Keller [Wed, 3 Feb 2021 00:59:00 +0000 (01:59 +0100)]
dnd: Update actor position after scaling even when animations are off

The code to update the actor position based on the cursor and current
scale was run in a 'new-frame' handler. This is working fine when
animations are enabled, but when they are turned off this does not work.
This is because the 'new-frame' signal is emitted before the changes for
that frame are applied. So with animations off the position was only
ever updated with the starting values. As a result the shrunk actor was
not being dragged by the position where it was clicked, but by where it
was clicked in the original size, which is likely not even on the shrunk
actor.

This change now also updates the position in the onComplete handler
which gets run with the final scale, even if the duration is 0.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1699

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1627>

5 years agotheme: Adjust dash icon spacing
Jakub Steiner [Thu, 4 Feb 2021 12:26:23 +0000 (13:26 +0100)]
theme: Adjust dash icon spacing

- slight separation between favorites and the app-well icon

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3640

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1634>

5 years agoworkspacesView: Derive workspace state from fit mode
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 16:10:19 +0000 (13:10 -0300)]
workspacesView: Derive workspace state from fit mode

Derive the workspace state WorkspacesView's workspaces from the fit mode.
Extra workspaces still run the zoom animations as before.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspace: Split preparation steps from zoomFromOverview
Georges Basile Stavracas Neto [Fri, 1 Jan 2021 16:07:06 +0000 (13:07 -0300)]
workspace: Split preparation steps from zoomFromOverview

Next commit will bind the workspace state adjustment to the snap
adjustment in WorkspacesView, and we'll need the preparation
steps but not the easing of the state adjustment.

Split preparation steps from zoomFromOverview() into a new method
prepareToLeaveOverview().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspacesView: Scale inactive workspaces
Georges Basile Stavracas Neto [Thu, 31 Dec 2020 17:19:43 +0000 (14:19 -0300)]
workspacesView: Scale inactive workspaces

As per the latest mockups, then horizontally snapping, the active
workspace should be highlighted. Because WorkspacesView clips to
allocation, we cannot simply scale up the active one. Instead,
scale down the inactive ones.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspacesView/workspacesDisplay: Don't sync geometry when animating
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 22:59:02 +0000 (19:59 -0300)]
workspacesView/workspacesDisplay: Don't sync geometry when animating

Synchronizing the actual geometry while animating from / to the overview can
break the animation. Let's prevent that. This code will go away soon anyway,
but to not lose bisectability, it's better not to leave it misbehaving until
then.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspacesView: Center active workspace in allocation
Georges Basile Stavracas Neto [Wed, 30 Dec 2020 15:44:00 +0000 (12:44 -0300)]
workspacesView: Center active workspace in allocation

When vertically snapping, WorkspacesView currently allocates workspaces
side-by-side, then applies an extra step of translation to center to
the active workspace. This extra step, however, gets in our way because
now we need tighter control of the workspaces positions in allocation,
in order to properly interpolate them.

Move the translation of workspaces to the allocation code itself, and
remove the extra translation step.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoviewSelector: Tie workspace fit mode to adjustment
Georges Basile Stavracas Neto [Tue, 29 Dec 2020 21:51:40 +0000 (18:51 -0300)]
viewSelector: Tie workspace fit mode to adjustment

Tie the fit mode adjustment of WorkspacesDisplay to the
state adjustment of AppPagesContainer, and transition to
the ALL fit mode when the app grid is visible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspacesView: Use side-by-side layout
Georges Basile Stavracas Neto [Tue, 29 Dec 2020 21:05:29 +0000 (18:05 -0300)]
workspacesView: Use side-by-side layout

Currently, WorkspacesView positions each workspace on a
per-page layout, each page with the allocated width and
height of WorkspaceView. This layout doesn't work well
with horizontal workspaces.

Layout workspaces side by side, instead of per page. The
layout is influenced by a "fit mode", which reflects the
different behaviors exposed in the mockup. This fit mode
represents whether a single or all workspaces will fit
available geometry.

The single fit mode is always used for now. Next commits
will make it switch to the all fit mode when in the app
grid state.

The translation_{x,y} also needed to reflect the switch to
a side-by-side layout, and use the geometry of the workspaces
to determine the offset. Notice that, when the fit mode is ALL,
there's no translation applied.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agoworkspacesView: Always use ZOOM transition
Florian Müllner [Sun, 28 Jun 2020 12:42:44 +0000 (14:42 +0200)]
workspacesView: Always use ZOOM transition

Workspaces are now always shown, so the code path to fade windows
instead of zooming out is dead now; remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1613>

5 years agocleanup: Define GObject accessors in camelCase
Florian Müllner [Sat, 30 Jan 2021 01:03:07 +0000 (02:03 +0100)]
cleanup: Define GObject accessors in camelCase

gjs is smart enough to match a propertyName getter/setter to the
corresponding property-name GObject property, so use that and get
rid of the eslint camelcase rule exceptions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1611>

5 years agojs: Use gjs-defined GObject accessors where possible
Florian Müllner [Sat, 30 Jan 2021 00:03:04 +0000 (01:03 +0100)]
js: Use gjs-defined GObject accessors where possible

Nowadays gjs allows to omit get/set accessors for read-write properties,
and will define reasonable defaults in that case. In many cases we don't
need anything more than the default handling, let gjs handle those props.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1611>

5 years agoworkspaceThumbnails: Remove obsolete property
Florian Müllner [Sat, 30 Jan 2021 01:15:53 +0000 (02:15 +0100)]
workspaceThumbnails: Remove obsolete property

Since commit f55ff012394, the property has been replaced by
an adjustment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1611>

5 years agoappDisplay: Remove obsolete property
Florian Müllner [Fri, 29 Jan 2021 23:56:48 +0000 (00:56 +0100)]
appDisplay: Remove obsolete property

Since commit f09fbb19c, all app grids use pagination and the old
property is meaningless.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1611>

5 years agoiconGrid: Use correct default values in pspecs
Florian Müllner [Fri, 29 Jan 2021 22:42:30 +0000 (23:42 +0100)]
iconGrid: Use correct default values in pspecs

The defaults are set in the code right now, but this is about to change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1611>

5 years agopageIndicators: Remove animated indicators
Florian Müllner [Wed, 3 Feb 2021 01:32:36 +0000 (02:32 +0100)]
pageIndicators: Remove animated indicators

Nothing uses them anymore, so clean out the code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1629>

5 years agoappDisplay: Never use animated indicators
Georges Basile Stavracas Neto [Fri, 8 Jan 2021 21:23:51 +0000 (18:23 -0300)]
appDisplay: Never use animated indicators

The app grid itself now is horizontal, and is displayed beneath
workspaces, above the dash. This makes the indicator animations
out of place, as they're not coming from the edge anymore.

Use PageIndicators for both FolderView and AppDisplay.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1629>

5 years agoworkspace: Handle window-added and removed signal after window tracker
Sebastian Keller [Tue, 2 Feb 2021 21:31:32 +0000 (22:31 +0100)]
workspace: Handle window-added and removed signal after window tracker

The new window preview overlay requires getting the app icon for a
window from the window tracker when it gets initialized. The window
tracker listens for the same 'window-added' signal on the MetaWorkspace
that the gnome-shell Workspace listens for to add the window preview.

The window tracker however reconnects all its signal handlers whenever
the number of workspaces changes, which means that its signal handlers
get called after the ones in Workspace ones. So by the time the
'window-added' handler in Workspace is called, the window tracker does
not have an app associated with the window.

To fix this ensure that all window related signal handlers in Workspace
are run after the ones in the window tracker.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3656

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1625>

5 years agoworkspaceAnimation: Move background to WorkspaceGroup
Alexander Mikhaylenko [Sat, 20 Jun 2020 20:29:21 +0000 (01:29 +0500)]
workspaceAnimation: Move background to WorkspaceGroup

Make each wallpaper have a wallpaper and clip it. Add a separate background
to MonitorGroup and add spacing between each workspace

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3635,
      https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/945,
      https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/948

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>

5 years agoworkspaceAnimation: Disable unredirection during the gesture
Alexander Mikhaylenko [Sat, 9 Jan 2021 12:43:14 +0000 (17:43 +0500)]
workspaceAnimation: Disable unredirection during the gesture

Make sure fullscreen apps can't block the animation.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>

5 years agoworkspaceAnimation: Support multiple screens
Alexander Mikhaylenko [Sat, 20 Jun 2020 19:43:06 +0000 (00:43 +0500)]
workspaceAnimation: Support multiple screens

Currently, there's one animation for the whole canvas. While it looks fine
with just one screen, it causes windows to move between screens when
switching workspaces. Instead, have a separate animation on each screen,
and sync their progress so that at any given time the progress "fraction"
is the same between all screens. Clip all animations to their screens so
that the windows don't leak to other screens.

If a window is placed between every screen, can end up in multiple
animations, in that case each part is still animated separately.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1213

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>

5 years agoworkspaceAnimation: Group sticky windows and moving window
Alexander Mikhaylenko [Sat, 20 Jun 2020 18:44:24 +0000 (23:44 +0500)]
workspaceAnimation: Group sticky windows and moving window

Since the transitions consists of window clones now, all the clones appear
above sticky windows. Clone sticky windows as well, and treat them same as
moving window instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>

5 years agoworkspaceAnimation: Use a workspace strip
Alexander Mikhaylenko [Sat, 20 Jun 2020 17:01:25 +0000 (22:01 +0500)]
workspaceAnimation: Use a workspace strip

Currently, the workspace swipe transition only has one workspace in each
direction. This works until you try to do multiple swipes in quick
succession. The second swipe would continue the existing transition, which
only has 2 or 3 workspaces in it, and will hit a wall.

To prevent this, take all workspaces and arrange them into a column or row,
depending on the layout, and use that as a transition.

For the transition that happens when focusing a window on another workspace
(for example, via Alt+Tab), still use only two workspaces instead of all of
them.

Since we don't support layouts other than single rows/columns anymore,
diagonal transitions aren't supported anymore, and will be shown as
horizontal or vertical instead.

Since nw alt-tab and gesture transitions are different, don't allow to do
both at once, that is, disable swipe tracker when a programmatic transition
is going. This will also conveniently cancel a gesture transition if a
programmatic one is initiated while a gesture is in progress.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>

5 years agoworkspaceAnimation: Use window clones
Alexander Mikhaylenko [Thu, 4 Jul 2019 18:15:15 +0000 (23:15 +0500)]
workspaceAnimation: Use window clones

Instead of reparenting windows, clone them. This will allow to properly
support multi-monitor setups in subsequent commits.

Block window mapping animation while the animation is running to prevent
new windows appearing during the animation from being visible at the same
time as their clones.

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/929

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1326>